<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 7.0/HTML Export Filter">
<LINK REL="STYLESHEET" HREF="KDM_1.0_16_UIpkg.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE> 16	UI Package</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<DIV>
<H6 CLASS="Heading">
<A NAME="pgfId-998826"></A><A NAME="58728"></A>UI Package</H6>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1086553"></A>Overview</H3>
<P CLASS="Body">
<A NAME="pgfId-1099384"></A>The UI package defines a set of meta-model elements whose purpose is to represent facets of information related to user interfaces, including their composition, their sequence of operations, and their relationships to the existing software systems.</P>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099386"></A><A NAME="_Toc131848442"></A>Organization of the UI Package</H3>
<P CLASS="Body">
<A NAME="pgfId-1100798"></A>The UI package consists of the following 6 class diagrams:</P>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100799"></A>UIModel</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100803"></A>UIInheritances</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100804"></A>UIResources</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100805"></A>UIRelations</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100806"></A>UIActions</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100807"></A>ExtendedUIElements</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId-1099390"></A>The UI package depends on the following packages:</P>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099392"></A>Action</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100781"></A>Code</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100782"></A>kdm</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100792"></A>Source</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100783"></A>Core</LI>
</UL>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099460"></A><A NAME="_Toc131848444"></A>UIModel Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1099462"></A>The UIModel class diagram follows the uniform pattern for KDM models to extend the KDM framework with specific meta-model elements related to static representations of the principal components of a user interface. The class diagram shown in <A HREF="KDM_1.0_16_UIpkg.htm#71329" CLASS="XRef">See - UIModel Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1099443"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_16_UIpkg-1.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption1">
<A NAME="pgfId-1099497"></A><A NAME="71329"></A>- UIModel Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099504"></A><A NAME="_Toc131848445"></A>UIModel Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1099505"></A>The UIModel is the specific KDM model which corresponds to the user interface of the existing software system.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099507"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099508"></A>KDMModel</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099510"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1099520"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1099513"></A>UIElement:UIElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1099515"></A>user interface elements owned by the given UIModel</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099522"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099524"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101499"></A>UIModel provides a container for various user-interface elements. It is the implementer's responsibility to arrange user-interface elements into one or more UIModel containers.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1101500"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099527"></A><A NAME="_Toc131848446"></A>AbstractUIElement Class (abstract)</H4>
<P CLASS="Body">
<A NAME="pgfId-1099528"></A>The AbstractUIElement is the abstract superclass for various concrete user interface elements. As such, it is the class that represents both compound and elementary items in a model of a system's user interface.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099530"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099531"></A>KDMEntity</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099533"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1099539"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100736"></A>UIRelation:AbstractUIRelationship[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100738"></A>UI relationships originating from the given UI element</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100845"></A>abstraction:ActionElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="paragraph">
<A NAME="pgfId-1101030"></A>owned &quot;abstraction&quot; actions</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101831"></A>implementation:AbstractCodeElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="paragraph">
<A NAME="pgfId-1101833"></A>grouped association to AbstractCodeElement from some CodeModel that are represented by the current UI element</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101461"></A>source: SourceRef[0..1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1101463"></A>Link to the physical artifact for the given UI element.</H6>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101840"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1101841"></A>implementation AbstractCodeElement should be owned by some CodeModel</H6>
</DIV>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1101881"></A>implementation AbstractCodeElement should be subclasses of ComputationalObject or ActionElement</H6>
</DIV>
<DIV>
<H6 CLASS="List1-">
<A NAME="pgfId-1101848"></A>abstraction ActionElement should be owned by the same UIModel</H6>
</DIV>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099543"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101508"></A>It is the implementer's responsibility to map specific user interface element types determined by the particular user-interface system of the existing software system, into concrete subclasses of the AbstractUIElement. It is the implementer's responsibility to map each user interface element into some instance of the AbstactUIElement. Implementation elements are one or more ComputationalObject or ActionElement from some CodeModel that are represented by the current UI element. &quot;Abstraction&quot; actions can be used to represent precise semantics of the UI Element.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1101509"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099546"></A><A NAME="_Toc131848447"></A>AbstractUIRelationship Class (abstract)</H4>
<P CLASS="Body">
<A NAME="pgfId-1099547"></A>The AbstractUIRelationship is the abstract superclass for various user interface relationships. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099549"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099551"></A>KDMRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099565"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099567"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101514"></A>It is the implementer's responsibility to map specific user interface association types determined by the particular user-interface system of the existing software system, into concrete subclasses of the AbstractUIRelationship. It is the implementer's responsibility to map each user interface association into some instance of the AbstactUIRelationship.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1101512"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1100813"></A><A NAME="_Toc131848443"></A>UIInheritances Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1100814"></A>The UIInheritances class diagram defines how classes of the UI package subclass core meta-model elements from the KDM Core package. The classes and associations that make up the UIInheritances class diagram are shown in <A HREF="KDM_1.0_16_UIpkg.htm#68047" CLASS="XRef">See - UIInheritances Class Diagram.</A>.</P>
<P CLASS="Body">
<A NAME="pgfId-1100821"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_16_UIpkg-2.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1100823"></A><A NAME="68047"></A>- UIInheritances Class Diagram</H6>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099571"></A>UIResources Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1099573"></A>The UIResource class diagram defines several specific KDM containers that own collections of user interface elements. The class diagram shown in <A HREF="KDM_1.0_16_UIpkg.htm#15515" CLASS="XRef">See - UIResources Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1099499"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_16_UIpkg-3.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1099675"></A><A NAME="15515"></A>- UIResources Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100876"></A>UIResource Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1101526"></A>The UIResource is the superclass for several user interface elements that can be containers for other user interface elements. For example, it represents a compound unit of display. This is a generic element.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101527"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101540"></A>AbstractUIElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101642"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1101652"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101645"></A>UIElement:UIElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1101647"></A>UI elements owned by this UIResource</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101546"></A>Constraints</H6>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1101551"></A>UIResource should have at least one stereotype</LI>
</UL>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101541"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101542"></A>UIResource is a generic element with under specified semantics. It can be used as an extension point.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1101531"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099690"></A><A NAME="_Toc131848449"></A>UIDisplay Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1099691"></A>The UIDisplay is the superclass of Screen and Report. It represents a compound unit of display.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099693"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101562"></A>UIResource</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101573"></A>Constraints</H6>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1101574"></A>UIDisplay should have at least one stereotype</LI>
</UL>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101575"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101576"></A>UIDisplay is a generic element with under specified semantics. It can be used as an extension point.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1101577"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101565"></A><A NAME="_Toc131848450"></A>Screen Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101566"></A>The Screen is a compound unit of display, such as a Web page or character-mode terminal that is used to present and capture information. The screen may be composed of multiple instances of AbstractUIElement and its subclasses.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099702"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099703"></A>UIDisplay</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099705"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101580"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099708"></A><A NAME="_Toc131848451"></A>Report Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1099709"></A>The Report is a compound unit of display, such as a printed report, that is used to present information. The report may be composed of multiple instances of AbstractUIElement and its subclasses.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099711"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099712"></A>UIDisplay</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099714"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101581"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100910"></A>UIField Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1100911"></A>The UIField is a unit of display, such as a control on a form, a text field on a character-mode terminal, or a field printed on a report. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100912"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1100913"></A>UIResource</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100914"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100915"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101582"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101036"></A>UIEvent class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1101037"></A>The UIEvent class is a meta-model element representing various events and callsbacks associated with user interfaces. This class follows the KDM event pattern, common to Resource Layer packages.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101038"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101039"></A>UIResource</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101864"></A>Attributes</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101870"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101867"></A>kind:String</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101869"></A>represents the nature of the action performed by this Event</P>
</TD>
</TR>
</TABLE>
<P CLASS="paragraph">
<A NAME="pgfId-1101862"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101720"></A>UIAction class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1101721"></A>UIAction class follow the pattern of a &quot;resource action&quot; class, specific to the UI package. The nature of the action represented by a particular element is designated by its &quot;kind&quot; attribute. Descriptions of the common platform action kind are provided in Appendix 2. Resource Layer actions.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101722"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101723"></A>AbstractUIElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101724"></A>Attributes</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101730"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101727"></A>kind:String</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101729"></A>represents the nature of the action performed by this element</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101742"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1101748"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101745"></A>UIElement:UIEvent[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1101747"></A>UI events owned by this UIAction</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101758"></A>Semantics</H6>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099718"></A>UIRelations Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1099719"></A>The UIRelations class diagram provides basic meta-model constructs to define the binding between elements of a display and their content. The class diagram shown in <A HREF="KDM_1.0_16_UIpkg.htm#53335" CLASS="XRef">See - UIRelations Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1099818"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_16_UIpkg-4.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1099819"></A><A NAME="53335"></A>- UIRelations Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100947"></A><A NAME="_Toc131848462"></A>UIFlow Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1100948"></A>The UIFlow relationship class captures the behavior of the user interface as the sequential flow from one instance of Display to another.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100949"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1100950"></A>AbstractUIRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100951"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1100961"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100954"></A>from:AbstractUIElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1100956"></A>&nbsp;</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100958"></A>to:AbstractUIElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1100960"></A>&nbsp;</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100962"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100963"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100971"></A><A NAME="_Toc131848470"></A>UILayout Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1100972"></A>The UILayout relationship class captures an association between two instances of Display - one that defines the content for a portion of a user interface, and one that defines its layout.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100973"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1100974"></A>AbstractUIRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100975"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1100985"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100978"></A>from:UIResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100980"></A>the origin UI Resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100982"></A>to:UIResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100984"></A>the target UI Resource</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100986"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100987"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100968"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099955"></A><A NAME="_Toc131848461"></A>UIActions Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1099957"></A>The UIActions class diagram defines several KDM relations for the UI package. It provides basic meta-model constructs to define the sequence of display in a user interface, and the mapping between a user interface and the events it may generate. </P>
<P CLASS="Body">
<A NAME="pgfId-1099820"></A>The class diagram shown in <A HREF="KDM_1.0_16_UIpkg.htm#57874" CLASS="XRef">See - UIActions Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1099804"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_16_UIpkg-5.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1100165"></A><A NAME="57874"></A>- UIActions Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100222"></A><A NAME="_Toc131848464"></A>Displays Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1100223"></A>The Displays relationship class represents the relationship between an instance of CallableInterface and the instance of UIElement that is presented on the interface as a result of the execution of the CallableInterface. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100225"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1100226"></A>AbstractUIRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100228"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1100238"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100231"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100233"></A>the ActionElement which displays a certain UI resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100235"></A>to:UIResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100237"></A>The target UI resource</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100240"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100242"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101330"></A><A NAME="_Toc131848458"></A>DisplaysImage Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1101331"></A>The DisplaysImage captures the relationship between an image file - an instance of Image - and its presentation on a user interface - an instance of DisplayUnit.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101332"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101333"></A>AbstractUIRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101334"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1101344"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101337"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1101339"></A>The ActionElement that dispalys a certain Image</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101341"></A>to:Image[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1101343"></A>The tager Image element</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101345"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101346"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101327"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101051"></A>ManagesUI class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1101052"></A>ManagesUI class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to user interface resources that are not related to the flow of data to and from the resource. ManagesUI relationship is similar to Addresses relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the UIAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101054"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101055"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101191"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101197"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101201"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101203"></A>&quot;abstracted&quot; action owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101205"></A>to:UIResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101207"></A>the user interface resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101194"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1101061"></A>This relationship should not be used in Code models</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101062"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101063"></A>ReadsUI class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1101064"></A>ReadsUI class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to user interface resources where there is a flow of data from the resource. ReadsUI relationship is similar to Reads relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the UIAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101066"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101067"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101069"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101256"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101260"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101262"></A>&quot;abstracted&quot; action owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101264"></A>to:UIResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101266"></A>the user interface resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101072"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1101073"></A>This relationship should not be used in Code models</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101074"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101075"></A>WritesUI class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1101076"></A>WritesUI class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to user interface resources where there is a flow of data to the resource. WritesUI relationship is similar to Writes relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the UIAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101078"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101079"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101080"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101272"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101276"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101278"></A>&quot;abstracted&quot; action owned by some resource</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101280"></A>to:UIResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="CellBody">
<A NAME="pgfId-1101282"></A>the user interface resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101083"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1101084"></A>This relationship should not be used in Code models</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101085"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1101357"></A>ExtendedUIElements Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1101358"></A>The ExtendedUIElements class diagram defines two &quot;wildcard&quot; generic elements for the UI model as determined by the KDM model pattern: a generic UI entity and a generic UI relationship.</P>
<P CLASS="Body">
<A NAME="pgfId-1101362"></A>The class diagram shown in <A HREF="KDM_1.0_16_UIpkg.htm#40244" CLASS="XRef">See - ExtendedUIElements Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1101366"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_16_UIpkg-6.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1101368"></A><A NAME="40244"></A>- ExtendedUIElements Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101370"></A>UIElement Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1101605"></A>The UIElement class is a generic meta-model element that can be used to define new &quot;virtual&quot; meta-model elements through the KDM light-weight extension mechanism</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101372"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101373"></A>AbstractUIElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101598"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1101599"></A>UIElement should have at least one stereotype</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101600"></A>Semantics</P>
<P CLASS="paragraph">
<A NAME="pgfId-1101601"></A>A UI entity with under specified semantics. It is a concrete class that can be used as the base element of a new &quot;virtual&quot; meta-model entity types of the UI model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.</P>
<P CLASS="Body">
<A NAME="pgfId-1101354"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1101415"></A>UIRelationship Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1101611"></A>The UIRelationship relationship is a generic meta-model element that can be used to define new &quot;virtual&quot; meta-model elements through the KDM light-weight extension mechanism </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101417"></A>.Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1101418"></A>AbstractUIRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101419"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1101429"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101422"></A>from:AbstractUIElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1101424"></A>The origin UI element</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1101426"></A>to:KDMEntity[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1101428"></A>the target KDM entity</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1101617"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1101618"></A>UIRelationship should have at least one stereotype</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1101619"></A>Semantics</P>
<P CLASS="paragraph">
<A NAME="pgfId-1101620"></A>A UI relationship with under specified semantics. It is a concrete class that can be used as the base element of a new &quot;virtual&quot; meta-model relationship types of the UI model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.</P>
<P CLASS="Body">
<A NAME="pgfId-1101413"></A>&nbsp;</P>
<P CLASS="Body">
<A NAME="pgfId-1101353"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
